package com.wenjie.original.service;


import com.wenjie.original.entity.SysMenu;
import com.wenjie.original.entity.vo.SysMenu.MoveVo;
import com.wenjie.original.flex_config.baseInterface.CusIService;
import io.swagger.annotations.ApiModel;
import lombok.Data;

import java.util.List;

/**
 * 菜单 业务层
 *
 * @author wenjie
 */
public interface ISysMenuService extends CusIService<SysMenu> {

    /**
     * @Description 将菜单数据转换为树形结构
     * @author wenjie
     * @date 2024/6/17 11:04
     */
    List<Menu> treeStructure(List<SysMenu> sysMenus);


    /**
     * @Description 将菜单栏数据进行一个筛选，筛选出 菜单类型的数据
     * @author wenjie
     * @date 2024/6/17 10:22
     */
    List<SysMenu> filterC(List<SysMenu> sysMenus);

    /**
     * @Description 根据主键删除
     * @author wenjie
     * @date 2024/6/25 20:24
     */
    void delById(Long id);

    /**
     * @Description 查询用户全部权限的菜单
     * @author wenjie
     * @date 2024/7/5 15:43
     */
    List<SysMenu> screenPermission();

    /**
     * @Description 移动菜单的位置
     * @author wenjie
     * @date 2024/6/25 20:23
     */
    void move(MoveVo moveVo);


    @Data
    @ApiModel("前端菜单栏的形式")
    class Menu extends SysMenu {
        private List<Menu> menuss;
    }

}
